Jeg har et array-statsnavn som æble x banan Y Kiwi z Jeg har brug for at lægge æble, banan og kiwi i en række Frugter og X, Y og Z i en række kaldet alfabeter. Enhver simpel C # -mekanisme til det tak?
Brug IEnumerable. Hvor overbelastning, der leverer indekset. var frugter = statsnavn. Hvor ((s, i) => i% 2 == 0). ToArray (); var alfabeter = statsnavn. hvor ((s, i) => i% 2! = 0). ToArray (); | Stjålet fra Sådan får du alternative elementer ved hjælp af Enumerable in C # var frugter = myArray.Where ((t, i) => i% 2 == 0). ToArray (); var alfabeter = myArray.Where ((t, i) => i% 2 == 1). ToArray (); | Hvis jeg har forstået, stiller du spørgsmålstegn ved, hvad du vil, er meget simpelt: Du vil lægge frugter i en række frugter og det samme for alfabeter, og de vises alternativt i array-statsnavn så: for (int i = 0, j = 0; i liste = ny liste () {"æble", "X", "banan", "Y", "Kiwi", "z"}; var result = list.Vælg ((l, i) => ny {l, i}) .GroupBy (p => p.i% 2) .Vælg (x => x.Vælg (v => v.l) .ToList ()) .ToList (); Så har du en liste over lister: | liste frugter = ny liste (); liste alfabet = ny liste (); for (int i = 0; i everyOther (IEnumerable collection) { ved hjælp af (var e = collection.GetEnumerator ()) { mens (e.MoveNext ()) { afkast afkast e.Current; e.MoveNext (); // spring en over } } } Du kan bruge System.Linq.Skip til at springe det første element over. streng [] ord = "æble X banan Y Kiwi z" .Split (); var frugter = hver anden (ord); var alfabeter = hver anden (ord.Skip (1)); Brug dem bare som en ny samling eller ring .ToArray () eller .ToList () på dem: foreach (snor f i frugter) Console.WriteLine (f); streng [] anArray = fruits.ToArray (); // ved hjælp af System.Linq Nu har du det, du har brug for. Iteratorer er metoder, der giver afkast, se Iteratorer (C # Programmeringsvejledning). Dette er et meget stærkt træk ved sproget. Du kan: spring elementer over dekorere elementer skift rækkefølge sammenkædede sekvenser (se System.Linq.Concat) ... | Her er nogle arbejdskoder, forhåbentlig vil dette være nyttigt for dig: ved hjælp af System; ved hjælp af System.Collections.Generic; ved hjælp af System.IO; ved hjælp af System.Linq; ved hjælp af System.Text; ved hjælp af System.Threading.Tasks; navneområde ReadFile { klasse Program { statisk ugyldigt ReadFile (strengfilPath, List custumerNames, List phoneNumbers) { strengelinje = streng. tom; var fileStream = ny StreamReader (filePath); bool isPhoneNumber = sandt; mens ((line = fileStream.ReadLine ())! = null) { hvis (isPhoneNumber) { phoneNumbers.Add (Convert.ToInt32 (line)); isPhoneNumber = false; } andet { custumerNames.Add (linje); isPhoneNumber = sandt; } } fileStream.Close (); } statisk ugyldigt Main (streng [] args) { Console.WriteLine ("Begyndte at læse filen ..."); Liste custumersNamesList = ny liste (); Liste custumersPhonesNumbers = ny liste (); ReadFile ("SampleFile.txt", custumersNamesList, custumersPhonesNumbers); // Under forudsætning af at begge har samme længde. for (int i = 0; i